<?php

class Firma extends Zend_Db_Table {

    protected $_name = 'firmy';

    public function edycjaFirmyDane($id, $nazwa, $miasto, $postcode, $ulica, $telefon, $email, $www, $uid) {
        $row = $this->fetchRow($this->select()
                                ->where('id=:id AND uid=:uid')
                                ->bind(array(':id' => $id, ':uid' => $uid)));
        if ($row) {
            $row->id = $id;
            $row->nazwa = $nazwa;
            $row->miasto = $miasto;
            $row->postcode = $postcode;
            $row->ulica = $ulica;
            $row->telefon = $telefon;
            $row->email = $email;
            $row->www = $www;
            $row->save();
            return TRUE;
        } else {
            throw new Zend_Exception('Nie można edytować danych firmy. Nie znaleziono rekordu!');
        }
    }

    public function edycjaFirmyLokalizacja($id, $long, $lat, $uid) {
        $row = $this->fetchRow($this->select()
                                ->where('id=:id AND uid=:uid')
                                ->bind(array(':id' => $id, ':uid' => $uid)));
        if ($row) {
            $row->id = $id;
            $row->long = $long;
            $row->lat = $lat;
            $row->save();
            return TRUE;
        } else {
            throw new Zend_Exception('Nie można edytować lokalizacji firmy. Nie znaleziono rekordu!');
        }
    }

    public function usunFirma($id) {
        $row = $this->find($id)->current();
        if ($row) {
            $row->id = $id;
            $row->active = 0;
            $row->usun = 1;
            $row->save();
            return TRUE;
        } else {
            throw new Zend_Exception('Nie można usunąć firmy. Nie znaleziono rekordu!');
        }
    }

    public function showAll($domainid) {
        $select = $this->select()->where('domena=? AND active=1 AND usun=0', $domainid);
        $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
        if ($adapter) {
            return $adapter;
        } else {
            throw new Zend_Exception('Nie można pokazać firm. Nie znaleziono rekordu!');
        }
    }

    public function showCompany($id) {
        $row = $this->find($id)->current();
        if ($row) {
            return $row;
        } else {
            throw new Zend_Exception('Nie można pokazać firmy. Nie znaleziono rekordu!');
        }
    }

    public function getAll($domainid) {
        $select = $this->select()->where('domena=? AND usun=0', $domainid);
        $select->order('active ASC');
        $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
        if ($adapter) {
            return $adapter;
        } else {
            throw new Zend_Exception('Nie można pokazać firm. Nie znaleziono rekordu!');
        }
    }

    public function getAllForUser($domainid, $uid) {
        $select = $this->select()
                        ->where('domena=:domain AND uid=:uid AND usun=0')
                        ->bind(array(':domain' => $domainid, ':uid' => $uid));
        $select->order('active ASC');
        $adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
        if ($adapter) {
            return $adapter;
        } else {
            throw new Zend_Exception('Nie można pokazać firm. Nie znaleziono rekordu!');
        }
    }

    public function showActiveCompanyForUser($id, $uid) {
        $select = $this->fetchAll($this->select()
                                ->where('domena=? AND active=1 AND usun=0', $id)
                                ->where('uid=?', $uid));
        if ($select) {
            return $select;
        } else {
            throw new Zend_Exception('Nie można pokazac domen dla userow. Nie znaleziono rekordu!');
        }
    }

    public function showInactvieCompanyForUser($id, $uid) {
        $select = $this->fetchAll($this->select()
                                ->where('domena=? AND active=0 AND usun=0', $id)
                                ->where('uid=?', $uid));
        if ($select) {
            return $select;
        } else {
            throw new Zend_Exception('Nie można pokazac domen dla userow. Nie znaleziono rekordu!');
        }
    }

}